home *** CD-ROM | disk | FTP | other *** search
/ Super CD / Super CD.iso / geomitri / steel / isofooti.bas < prev    next >
Encoding:
BASIC Source File  |  1993-04-14  |  21.0 KB  |  569 lines

  1. DECLARE SUB walid (x!, y!, length!, tt!, tc!, gc!, flag!, ij!, num!, rv!, b$)
  2. DEF fnmb (x) = INT((x - 1) / 3) + 1
  3. DEF FNXX (Z) = INT(Z / .05)
  4.  
  5.    CLS : COLOR 7, 0: DIM valu(300), bb$(300): page = 1
  6.    DIM b(96), c(96), BF(96), L(96), STEEL(96), CONC(96), NB2(96), SBAR2(96)
  7.    DIM SBAR(96), NB(96), SP(96), P(96), T(96), d(96), title$(6)
  8.    GOSUB 159
  9.    LOCATE 6, 7: PRINT "Owner:"; SPC(36); "Project:"
  10.    LOCATE 7, 7: PRINT "Location:"; SPC(23); "Block No.:"; SPC(10); "Plot No.:"
  11.    LOCATE 10, 7: PRINT "Foundation No."; SPC(5); "Column Width"; SPC(5); "Column Length"; SPC(6); "Column Load"
  12.    LOCATE 11, 30: PRINT "cm"; SPC(15); "cm"; SPC(16); "Ton"
  13.    COLOR 7, 4: LOCATE 2, 31: PRINT " Isolating Footing "
  14.    COLOR 14, 0: LOCATE 3, 12: PRINT DATE$: LOCATE 3, 68: PRINT TIME$
  15.    x = 6: y = 15: length = 30: tt = 2: tc = 7: gc = 1: flag = 1: num = 290: ij = 1
  16.    WHILE flag
  17.      COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length)
  18.      CALL walid(x, y, length, tt, tc, gc, flag, ij, num, rv, b$)
  19.      title$(num - 289) = b$: num = num + 1
  20.      IF num = 291 THEN y = 58: length = 16
  21.      IF num = 292 THEN y = 17: x = 7: length = 20
  22.      IF num = 293 THEN y = 50: length = 6
  23.      IF num = 294 THEN y = 69
  24.      IF num = 295 THEN flag = 0
  25.    WEND
  26.    GOSUB 160
  27.  
  28.    x = 12: y = 26: length = 11: tt = 1.1: tc = 7: gc = 1: flag = 1: num = 1: ii = 0
  29.    LOCATE x, 9: PRINT "1.": ij = 3
  30.    WHILE flag
  31. 50   CALL walid(x, y, length, tt, tc, gc, flag, ij, num, rv, b$)
  32.      y = y + 18: valu(num) = rv
  33.      IF y = 80 THEN
  34.      y = 26: ii = fnmb(num): ii$ = STR$(ii) + "."
  35.      COLOR 7, 0: LOCATE x, 9: PRINT ii$
  36.      x = x + 1: ii = ii + 1: ii$ = STR$(ii) + "."
  37.      IF x = 20 THEN GOSUB 111: GOSUB 112: x = 12: y = 26
  38.      COLOR 14, 0: LOCATE x, 9: PRINT ii$
  39.      END IF
  40.      num = num + 1
  41. 12 WEND
  42. COLOR 23, 4: LOCATE 23, 30: PRINT " Pleas wait ... "
  43.  
  44. ' THE CALCULATION PART:-
  45. '------------------------
  46.    J = 0: FOR i = 1 TO 288 STEP 3: J = J + 1
  47.    c(J) = valu(i) / 100: b(J) = valu(i + 1) / 100: P(J) = valu(i + 2) * 9.81
  48.    NEXT
  49.  
  50. 'step(1)
  51. '--------
  52.    FOR S = 1 TO 96
  53.    IF c(S) = 0 OR P(S) = 0 OR b(S) = 0 THEN 52
  54.    b = b(S): c = c(S): P = P(S)
  55.    A1 = b * c
  56.    a = 1.1 * P / q
  57.    x = -.25 * (c + b - SQR((c + b) ^ 2 + 4 * (a - A1)))
  58.    L = 2 * x + b: BF = 2 * x + c
  59.    L = .05 * (FNXX(L) + 1): BF = .05 * (FNXX(BF) + 1)
  60.  
  61. 'STEP(2)
  62. '-------
  63.    BETA = b / c
  64.    VC = (.17 + .16 / BETA) * .85 * SQR(fc)
  65.    IF BETA <= 2 THEN VC = .33 * .85 * SQR(fc)
  66.    VS = .17 * .85 * SQR(fc)
  67. 51 a = BF * L: QA = q: q = 1.1 * P / a
  68.  
  69. 'STEP(3)
  70. '--------
  71.    x = 4000 * VC + q
  72.    y = (2000 * VC + q) * (b + c)
  73.    Z = (a - A1) * q
  74.    D1 = -.5 * (y - SQR(y ^ 2 + 4 * x * Z)) / x
  75.  
  76. 'STEP(4)
  77. '--------
  78.    D2 = .5 * (L - b) * q / (1000 * VS + q)
  79.    d = .23
  80.    IF D1 > d THEN d = D1
  81.    IF D2 > d THEN d = D2
  82.    d = .05 * (FNXX(d) + 1)
  83.  
  84. 'STEP(5)
  85. '-------
  86. 30 DIM K(2), W(2), AREAS(2)
  87.    K(1) = b: K(2) = c: W(1) = L: W(2) = BF
  88.    FOR i = 1 TO 2
  89.    L1 = .5 * (W(i) - K(i))
  90.    Mu = .5 * q * L1 ^ 2
  91.    x = fy ^ 2 * 1000 / 1.7 / fc: y = fy * d * 1000
  92.     Ass = (y - SQR(y ^ 2 - 4 * x * Mu)) / 2 / x
  93.    Ps = Ass / d: BETA = .85: Pt = .0018
  94.    IF fc > 28 THEN BETA = .85 - .05 * INT((fc - 28) / 7)
  95.    Pb = .85 * BETA * fc * 600 / fy / (fy + 600)
  96.    Pmin = 1.4 / fy
  97.    Pbs = .75 * Pb
  98.    IF Ps < Pt THEN Ps = Pt
  99.    IF Ps < Pmin THEN Ps = Pmin
  100.    IF Ps > Pbs THEN L = L + .05: BF = BF + .05: GOTO 51
  101.  
  102. 'STEP(6)
  103. '--------
  104.    Ast = Ps * d * W(i): MBAR = 6 * W(i): Amin = Ast * 10
  105.    FOR BAR = 12 TO 20 STEP 2
  106.    ABAR = 22 * BAR ^ 2 / 2.8E+07: BENT$ = "FALSE"
  107.    NBAR = INT(Ast / ABAR + 1)
  108.    IF NBAR < MBAR THEN 100
  109.    Atem = NBAR * ABAR
  110.    St = W(i) * 100 - 15 - BAR / 10: SX = St / NBAR: SX = INT(SX * 100) / 100
  111.    IF SX < 5 THEN 100
  112.    IF Atem < Amin THEN Amin = Atem: SBAR1 = BAR: NB1 = NBAR: SP(i) = SX: GOSUB 200
  113. 100 NEXT BAR
  114.     AREAS(i) = Amin
  115.     IF i = 1 THEN SBAR(S) = SBAR1 ELSE SBAR2(S) = SBAR1
  116.     IF i = 1 THEN NB(S) = NB1 ELSE NB2(S) = NB1
  117.     NEXT i
  118.  
  119. 'STEP(8)
  120. '--------
  121.     DOWEL$ = "FALSE"
  122.     A2 = (b + 4 * d) * (c + 4 * d)
  123.     U = SQR(A2 / A1)
  124.     IF U > 2 THEN U = 2
  125.     Fcc = .595 * U * fc
  126.     Fa = 1.1 * P / A1
  127.     IF Fa > Fcc THEN DOWEL$ = "TRUE"
  128.  
  129. 'STEP(10)
  130. '---------
  131.     CONC(S) = BF * L * T
  132.     STEEL(S) = AREAS(1) + AREAS(2)
  133.  
  134.     BF(S) = BF * 100: L(S) = L * 100: T(S) = T * 100: b(S) = b * 100: c(S) = c * 100
  135.     P(S) = P / 9.81: q = QA
  136. 52 NEXT
  137.  
  138.     COLOR 7, 0: CLS
  139.     LOCATE 1, 2: PRINT CHR$(218): LOCATE 4, 5: PRINT CHR$(218)
  140.     LOCATE 1, 31: PRINT CHR$(218): LOCATE 10, 5: PRINT CHR$(218)
  141.     LOCATE 4, 30: PRINT CHR$(191): LOCATE 1, 75: PRINT CHR$(191)
  142.     LOCATE 10, 75: PRINT CHR$(191)
  143.     LOCATE 9, 30: PRINT CHR$(217): LOCATE 9, 75: PRINT CHR$(217)
  144.     LOCATE 22, 75: PRINT CHR$(217)
  145.     LOCATE 9, 5: PRINT CHR$(192): LOCATE 9, 31: PRINT CHR$(192)
  146.     LOCATE 22, 5: PRINT CHR$(192): LOCATE 1, 3: PRINT STRING$(2, 196)
  147.     LOCATE 1, 32: PRINT STRING$(43, 196): LOCATE 9, 6: PRINT STRING$(24, 196)
  148.     LOCATE 9, 32: PRINT STRING$(43, 196): LOCATE 10, 6: PRINT STRING$(69, 196)
  149.     LOCATE 22, 6: PRINT STRING$(69, 196): LOCATE 4, 6: PRINT STRING$(24, 196)
  150.     FOR i = 2 TO 8
  151.     LOCATE i, 31: PRINT CHR$(179): LOCATE i, 75: PRINT CHR$(179)
  152.     IF i > 4 THEN LOCATE i, 5: PRINT CHR$(179): LOCATE i, 30: PRINT CHR$(179)
  153.     LOCATE i, 2: PRINT CHR$(179)
  154.     NEXT
  155.     FOR i = 11 TO 21: LOCATE i, 5: PRINT CHR$(179): LOCATE i, 75: PRINT CHR$(179)
  156.     LOCATE i, 2: PRINT CHR$(179): NEXT
  157.     LOCATE 9, 2: PRINT CHR$(179): LOCATE 10, 2: PRINT CHR$(179)
  158.     LOCATE 22, 2: PRINT CHR$(179)
  159. ' drawing the footing
  160. '---------------------
  161.     LOCATE 7, 33: PRINT CHR$(192); STRING$(16, 196); CHR$(217)
  162.     LOCATE 6, 33: PRINT CHR$(179): LOCATE 6, 50: PRINT CHR$(179): LOCATE 5, 33
  163.     PRINT CHR$(218); STRING$(5, 196); CHR$(217); SPC(4); CHR$(192); STRING$(5, 196); CHR$(191)
  164.     LOCATE 4, 39: PRINT CHR$(218); STRING$(4, 196); CHR$(191)
  165.     LOCATE 4, 41: PRINT CHR$(25): LOCATE 3, 42: PRINT " P"
  166.     LOCATE 7, 53: PRINT CHR$(192); STRING$(16, 196); CHR$(217)
  167.     LOCATE 2, 53: PRINT CHR$(218); STRING$(16, 196); CHR$(191)
  168.     FOR i = 3 TO 6: LOCATE i, 53: PRINT CHR$(179); SPC(16); CHR$(179): NEXT
  169.     LOCATE 4, 59: PRINT STRING$(6, 176)
  170.     LOCATE 5, 59: PRINT STRING$(6, 176)
  171.     LOCATE 6, 35: PRINT STRING$(14, 220)
  172.     COLOR 3, 0: LOCATE 8, 53: PRINT CHR$(17); STRING$(16, 196); CHR$(16)
  173.     LOCATE 8, 61: PRINT " L "
  174.     FOR i = 2 TO 7: LOCATE i, 72: PRINT CHR$(179): NEXT
  175.     LOCATE 2, 72: PRINT CHR$(24): LOCATE 7, 72: PRINT CHR$(25)
  176.     LOCATE 5, 72: PRINT "B"
  177.     LOCATE 6, 59: PRINT CHR$(17); STRING$(4, 196); CHR$(16)
  178.     LOCATE 6, 62: PRINT "c"
  179.     LOCATE 5, 66: PRINT CHR$(25); " b"
  180.     LOCATE 4, 66: PRINT CHR$(24)
  181.     LOCATE 7, 51: PRINT CHR$(25): LOCATE 5, 51: PRINT CHR$(24)
  182.     LOCATE 6, 51: PRINT "t"
  183.  
  184.  
  185.     COLOR 15, 0: LOCATE 2, 5: PRINT "Date :"
  186.     LOCATE 3, 5: PRINT "Time :"
  187.     LOCATE 6, 7: PRINT "fc' ="; SPC(10); "kg/sqcm"
  188.     LOCATE 7, 7: PRINT "fy  ="; SPC(10); "kg/sqcm"
  189.     LOCATE 8, 7: PRINT "B.C.="; SPC(10); "T/sqm"
  190.     LOCATE 11, 8: PRINT "No."; SPC(5); "B"; SPC(6); "L"; SPC(6); "t"; SPC(5); "Long";
  191.     PRINT SPC(5); "Short"; SPC(6); "P"; SPC(6); "c"; SPC(6); "b"
  192.     LOCATE 12, 14: PRINT "(cm)"; SPC(3); "(cm)"; SPC(3); "(cm)"; SPC(4); "Bars";
  193.     PRINT SPC(5); "Bars"; SPC(5); "(Ton)"; SPC(2); "(cm)"; SPC(3); "(cm)"
  194.     COLOR 7, 0: LOCATE 6, 12: PRINT fc / .0981: LOCATE 7, 12: PRINT fy / .0981
  195.     LOCATE 8, 12: PRINT q / 9.81
  196.     COLOR 7, 1: LOCATE 5, 7: PRINT "Common Data :- "
  197.     COLOR 14, 0: LOCATE 2, 12: PRINT DATE$: LOCATE 3, 12: PRINT TIME$
  198.     COLOR 7, 4: LOCATE 1, 5: PRINT " Answer sheat "
  199.  
  200. 'printing the results
  201. '---------------------
  202.     xx = 12: COLOR 7, 0
  203.     FOR i = 1 TO 96
  204.     IF c(i) = 0 OR b(i) = 0 OR P(i) = 0 THEN 54
  205.     xx = xx + 1
  206.     IF xx = 21 THEN
  207.       COLOR 3, 0: LOCATE 23, 25: PRINT "Press any key to continue ..": COLOR 14, 0
  208. 53    a$ = INKEY$: IF a$ = "" THEN LOCATE 3, 12: PRINT TIME$: GOTO 53
  209.       COLOR 7, 0
  210.       xx = 13: FOR J = 13 TO 20: LOCATE J, 6: PRINT SPACE$(67): NEXT
  211.     END IF
  212.     LOCATE 23, 25: PRINT SPACE$(30)
  213.     LOCATE xx, 7
  214.     PRINT i; SPC(3); BF(i); SPC(2); L(i); SPC(2); T(i); SPC(3);
  215.     XY$ = STR$(NB2(i)) + "D": x$ = STR$(SBAR2(i)): XY$ = XY$ + x$: PRINT XY$;
  216.     XY$ = STR$(NB(i)) + "D": x$ = STR$(SBAR(i)): XY$ = XY$ + x$: PRINT SPC(4); XY$;
  217.     PRINT SPC(3); P(i); SPC(2); b(i); SPC(3); c(i)
  218. 54  NEXT
  219.     DO: a$ = INKEY$: LOOP WHILE a$ = ""
  220.    END
  221.  
  222.  
  223. 'STEP(7)
  224. '--------
  225. 200 factor = 1!: Ld = 300
  226.     T = (d + SBAR(i) / 2000 + .075)
  227.     T = .05 * (FNXX(T) + 1)
  228.     Lda = T * 1000 - BAR - 76
  229.     Ld1 = .019 * ABAR * fy / SQR(fc)
  230.     Ld2 = .058 * BAR * fy
  231.     IF Ld1 > Ld THEN Ld = Ld1
  232.     IF Ld2 > Ld THEN Ld = Ld2
  233.     IF fy < 415 THEN factor = factor * (2 - 415 / fy)
  234.     IF SX > 15 THEN factor = factor * .8
  235.     factor = factor * Ast / Amin
  236.     Ld = Ld * factor
  237. '    IF Ld>Lda THEN D=D+0.05 : RETURN 30
  238.     RETURN
  239.  
  240. 159  LOCATE 2, 2: PRINT STRING$(29, 196)
  241.    LOCATE 2, 50: PRINT STRING$(29, 196)
  242.    FOR i = 3 TO 20: LOCATE i, 1: PRINT CHR$(179): LOCATE i, 79: PRINT CHR$(179): NEXT
  243.    LOCATE 21, 2: PRINT STRING$(77, 196)
  244.    LOCATE 2, 1: PRINT CHR$(218): LOCATE 2, 79: PRINT CHR$(191)
  245.    LOCATE 21, 1: PRINT CHR$(192): LOCATE 21, 79: PRINT CHR$(217)
  246.    LOCATE 5, 6: PRINT STRING$(69, 196): LOCATE 8, 6: PRINT STRING$(69, 196)
  247.    LOCATE 5, 5: PRINT CHR$(218): LOCATE 5, 75: PRINT CHR$(191)
  248.    LOCATE 8, 5: PRINT CHR$(192): LOCATE 8, 75: PRINT CHR$(217)
  249.    FOR i = 6 TO 7: LOCATE i, 5: PRINT CHR$(179): LOCATE i, 75: PRINT CHR$(179): NEXT
  250.    LOCATE 9, 5: PRINT CHR$(218): LOCATE 9, 75: PRINT CHR$(191)
  251.    LOCATE 20, 5: PRINT CHR$(192): LOCATE 20, 75: PRINT CHR$(217)
  252.    LOCATE 9, 6: PRINT STRING$(69, 196): LOCATE 20, 6: PRINT STRING$(69, 196)
  253.    FOR i = 10 TO 19: LOCATE i, 5: PRINT CHR$(179): LOCATE i, 75: PRINT CHR$(179): NEXT
  254.    COLOR 15, 0: LOCATE 3, 5: PRINT "Date :": LOCATE 3, 61: PRINT "Time :"
  255.    LOCATE 4, 5: PRINT "Page .. "; page
  256.    RETURN
  257.  
  258. 111 'sub-programm to clean the data sheat
  259. '-----------------------------------------
  260. COLOR 0, 0
  261. FOR i = 12 TO 19: LOCATE i, 9: PRINT SPACE$(64): NEXT
  262. RETURN
  263.  
  264. 112 'priinting the contents of the page
  265. '--------------------------------------
  266.    COLOR tc, gc: x = 12: y = 26
  267.    LOCATE x, y: PRINT SPACE$(length)
  268.    LOCATE x, y: PRINT bb$(num): y = y + 18: COLOR 7, 0
  269.    FOR ix = num + 1 TO num + 24
  270.   
  271.   
  272.    LOCATE x, y: PRINT bb$(ix): y = y + 18
  273.    IF y = 80 THEN y = 26: x = x + 1
  274.    NEXT
  275.    RETURN
  276.  
  277. 160 ' input the common data
  278. '---------------------------
  279. COLOR 0, 0: LOCATE 7, 6: PRINT SPACE$(68)
  280. COLOR 15, 0: LOCATE 7, 7: PRINT "fc' ="; SPC(9); "kg/sqcm,"; SPC(3); "fy ="; SPC(9); "kg/sqcm,"; SPC(2); "B.C ="; SPC(9); "T/sqm"
  281. x = 7: y = 13: length = 7: tt = 1.1: tc = 7: gc = 1: flag = 1: num = 296: ij = 2
  282. WHILE flag
  283.    CALL walid(x, y, length, tt, tc, gc, flag, ij, num, rv, b$)
  284.    y = y + 24: num = num + 1
  285.    IF num = 297 THEN fc = rv * .0981
  286.    IF num = 298 THEN fy = rv * .0981
  287.    IF num = 299 THEN q = rv * 9.81: flag = 0
  288.    WEND
  289. RETURN
  290.  
  291.    SUB walid (x, y, length, tt, tc, gc, flag, ij, num, rv, b$) STATIC
  292.    DIM rv(300), bb$(300): b$ = bb$(num): factor = 1
  293.    page = INT((num - 1) / 24) + 1
  294.    COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length)
  295.    LOCATE x, y: PRINT bb$(num)
  296. 99 a$ = INKEY$: IF a$ = "" THEN LOCATE 3, 68: COLOR 14, 0: PRINT TIME$: GOTO 99
  297.    COLOR tc, gc: LOCATE x, y
  298.    IF ASC(a$) = 0 THEN 101
  299.    IF ASC(a$) = 13 THEN flag = 1: GOTO 75
  300.    IF ASC(a$) = 27 THEN flag = 0: ix = 10: b$ = "": GOTO 75
  301.    IF ASC(a$) = 5 THEN flag = 0: ix = 9: b$ = "": GOTO 75
  302.    IF ASC(a$) = 8 THEN GOSUB 73: GOTO 99
  303.    IF ASC(a$) = 4 THEN GOSUB 74: GOTO 99
  304.    IF LEN(b$) = length THEN BEEP: GOTO 99
  305.    IF ASC(a$) > 47 AND ASC(a$) < 58 THEN b$ = b$ + a$: PRINT b$: GOTO 99
  306.    IF ASC(a$) = 46 AND tt = 1.1 AND xx = 0 THEN b$ = b$ + a$: xx = 1: PRINT b$: GOTO 99
  307.    IF ASC(a$) = 69 OR ASC(a$) = 101 THEN b$ = b$ + a$: PRINT b$: GOTO 99
  308.    IF ASC(a$) > 64 AND ASC(a$) < 91 AND tt = 2 THEN b$ = b$ + a$: PRINT b$: GOTO 99
  309.    IF ASC(a$) > 96 AND ASC(a$) < 123 AND tt = 2 THEN b$ = b$ + a$: PRINT b$: GOTO 99
  310.    IF ASC(a$) = 45 AND tt = 1.2 AND LEN(b$) = 1 THEN b$ = b$ + a$: PRINT b$: GOTO 99
  311.    IF ASC(a$) = 32 AND tt = 2 THEN b$ = b$ + a$: PRINT b$: GOTO 99
  312.    BEEP: GOTO 99
  313.  
  314. 73 ' the back-slash key
  315. '----------------------
  316.    er = y + LEN(b$) - 1
  317.    d = LEN(b$) - 1: IF d < 0 THEN BEEP: RETURN
  318.    LOCATE x, er: COLOR tc, gc: PRINT " "
  319.    b$ = MID$(b$, 1, d): IF VAL(b$) = INT(VAL(b$)) THEN xx = 0
  320.    RETURN
  321.  
  322. 74 ' the ^D function
  323. '-------------------
  324.    b$ = "": COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length): RETURN
  325.  
  326. 101 ' the extended keys :-
  327. '--------------------------
  328.    q = LEN(a$): a$ = MID$(a$, 2, q)
  329. ' Del. key
  330. '----------
  331.    IF ASC(a$) = 83 THEN
  332.    ee = LEN(b$) - 1: IF ee < 0 THEN BEEP: GOTO 99
  333.    b$ = RIGHT$(b$, ee): IF VAL(b$) = INT(VAL(b$)) THEN xx = 0
  334.    LOCATE x, y: COLOR tc, gc: PRINT SPACE$(length)
  335.    LOCATE x, y: PRINT b$
  336.    GOTO 99
  337.    END IF
  338.  
  339. 'the ^End key
  340. '--------------
  341. IF ASC(a$) = 117 THEN
  342. flag = 0: b$ = bb$(num): COLOR 7, 0
  343. LOCATE x, y: PRINT SPACE$(length)
  344. LOCATE x, y: PRINT b$: GOTO 102
  345. END IF
  346.  
  347. 'the Home function
  348. '------------------
  349.    IF ASC(a$) = 71 THEN
  350.    IF ij <> 3 THEN BEEP: GOTO 99
  351.    COLOR tc, 0: LOCATE x, y: PRINT SPACE$(length)
  352.    x = 12: y = 26: num = page * 24 - 23
  353.    xx = page * 8 - 7: xx$ = STR$(xx) + "."
  354.    COLOR 14, 0: LOCATE 12, 10: PRINT xx$
  355.    COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length)
  356.    b$ = bb$(num): LOCATE x, y: PRINT b$: GOTO 99
  357.    END IF
  358.  
  359. 'the End function
  360. '-----------------
  361.    IF ASC(a$) = 79 THEN
  362.    IF ij <> 3 THEN BEEP: GOTO 99
  363.    COLOR tc, 0: LOCATE x, y: PRINT SPACE$(length)
  364.    xx = 8 * page: xx$ = STR$(xx) + "."
  365.    COLOR 14, 0: LOCATE 19, 10: PRINT xx$
  366.    x = 19: y = 62: num = 24 * page
  367.    COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length)
  368.    b$ = bb$(num): LOCATE x, y: PRINT b$: GOTO 99
  369.    END IF
  370.  
  371. 'the PgUp function
  372. '------------------
  373.    IF ASC(a$) = 73 THEN
  374.    IF ij <> 3 THEN BEEP: GOTO 99
  375. 90   page = page - 1
  376.    IF page = 0 THEN BEEP: page = 1: GOTO 99
  377.    COLOR 15, 0: LOCATE 4, 13: PRINT page
  378.    GOSUB 105: num = page * 24 - 23: GOSUB 103: xx = 8 * page - 7: xx$ = STR$(xx) + "."
  379.    COLOR 14, 0: LOCATE 12, 9: PRINT xx$
  380.    x = 12: y = 26: b$ = bb$(num): GOTO 99
  381.    END IF
  382.  
  383. 'the ^PgUp function
  384. '-------------------
  385.    IF ASC(a$) = 132 THEN
  386.    IF ij <> 3 THEN BEEP: GOTO 99
  387.    page = 1: num = 1
  388.    COLOR 15, 0: LOCATE 4, 13: PRINT page
  389.    GOSUB 105: GOSUB 103
  390.    COLOR 14, 0: LOCATE 12, 9: PRINT "1.": x = 12: y = 26: b$ = bb$(num): GOTO 99
  391.    END IF
  392.  
  393. 'the ^PgDn function
  394. '-------------------
  395.    IF ASC(a$) = 118 THEN
  396.    IF ij <> 3 THEN BEEP: GOTO 99
  397.    page = 12: num = 265
  398.    COLOR 15, 0: LOCATE 4, 13: PRINT page
  399.    GOSUB 105: GOSUB 103
  400.    COLOR 14, 0: LOCATE 12, 9: PRINT "89.": x = 12: y = 26: b$ = bb$(num): GOTO 99
  401.    END IF
  402.  
  403. 'the PgDn function
  404. '------------------
  405.    IF ASC(a$) = 81 THEN
  406.    IF ij <> 3 THEN BEEP: GOTO 99
  407. 91   page = page + 1
  408.    IF page = 13 THEN BEEP: page = 12: GOTO 99
  409.    COLOR 15, 0: LOCATE 4, 13: PRINT page
  410.    GOSUB 105: num = page * 24 - 23: GOSUB 103: xx = 8 * page - 7: xx$ = STR$(xx) + "."
  411.    COLOR 14, 0: LOCATE 12, 9: PRINT xx$: b$ = bb$(num)
  412.    x = 12: y = 26: GOTO 99
  413.    END IF
  414.  
  415. 'the up cursor
  416. '--------------
  417.    IF ASC(a$) = 72 THEN
  418.    IF ij <> 3 THEN BEEP: GOTO 99
  419.    IF num >= page * 24 - 23 AND num <= page * 24 - 21 THEN 90
  420.    COLOR 7, 0: LOCATE x, 9: xx = fnmb(num): xx$ = STR$(xx) + ".": PRINT xx$
  421.    COLOR tc, 0: LOCATE x, y: PRINT SPACE$(length)
  422.    LOCATE x, y: PRINT b$: x = x - 1: num = num - 3
  423.    COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length): b$ = bb$(num)
  424.    LOCATE x, y: PRINT b$: xx = fnmb(num): xx$ = STR$(xx) + "."
  425.    COLOR 14, 0: LOCATE x, 9: PRINT xx$: LOCATE 4, 70: b$ = bb$(num): GOTO 99
  426.    END IF
  427.  
  428. ' the down curser
  429. '-----------------
  430.    IF ASC(a$) = 80 THEN
  431.    IF ij <> 3 THEN BEEP: GOTO 99
  432.    IF num >= page * 24 - 2 AND num <= page * 24 THEN 91
  433.    COLOR 7, 0: LOCATE x, 9: xx = fnmb(num): xx$ = STR$(xx) + ".": PRINT xx$
  434.    COLOR tc, 0: LOCATE x, y: PRINT SPACE$(length)
  435.    LOCATE x, y: PRINT b$: x = x + 1: num = num + 3
  436.    COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length): b$ = bb$(num)
  437.    LOCATE x, y: PRINT b$: xx = fnmb(num): xx$ = STR$(xx) + "."
  438.    COLOR 14, 0: LOCATE x, 9: PRINT xx$: b$ = bb$(num): GOTO 99
  439.    END IF
  440.  
  441. ' the left curser
  442. '-----------------
  443.    IF ASC(a$) = 75 THEN
  444.    IF ij = 1 THEN
  445.       IF num = 290 THEN BEEP: GOTO 99
  446.       COLOR 7, 0: LOCATE x, y: PRINT SPACE$(length)
  447.       LOCATE x, y: PRINT bb$(num): num = num - 1
  448.       IF num = 290 THEN length = 30: y = 15
  449.       IF num = 291 THEN y = 58: x = 6: length = 16
  450.       IF num = 292 THEN y = 17: x = 7: length = 20
  451.       IF num = 293 THEN y = 50: length = 6
  452.       COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length): b$ = bb$(num)
  453.       LOCATE x, y: PRINT b$: GOTO 99
  454.    END IF
  455.    IF ij = 2 THEN
  456.       IF num = 296 THEN BEEP: GOTO 99
  457.       COLOR 7, 0: LOCATE x, y: PRINT SPACE$(length)
  458.       LOCATE x, y: PRINT bb$(num)
  459.       num = num - 1: y = y - 24
  460.       COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length): b$ = bb$(num)
  461.       LOCATE x, y: PRINT b$: GOTO 99
  462.    END IF
  463.    IF num = page * 24 - 23 THEN 90
  464.    COLOR tc, 0: LOCATE x, y: PRINT SPACE$(length)
  465.    LOCATE x, y: PRINT b$
  466.    y = y - 18: num = num - 1
  467.    IF y = 8 THEN
  468.    xx = fnmb(num) + 1: xx$ = STR$(xx) + "."
  469.    COLOR 7, 0: LOCATE x, 9: PRINT xx$
  470.    y = 62: x = x - 1: xx = fnmb(num): xx$ = STR$(xx) + "."
  471.    COLOR 14, 0: LOCATE x, 9: PRINT xx$
  472.    END IF
  473.    COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length): b$ = bb$(num)
  474.    LOCATE x, y: PRINT b$: GOTO 99
  475.    END IF
  476.  
  477. ' the right curser
  478. '------------------
  479.    IF ASC(a$) = 77 THEN
  480.    IF ij = 1 THEN
  481.       IF num = 294 THEN BEEP: GOTO 99
  482.       COLOR 7, 0: LOCATE x, y: PRINT SPACE$(length)
  483.       LOCATE x, y: PRINT bb$(num)
  484.       num = num + 1
  485.       IF num = 291 THEN y = 55: length = 16
  486.       IF num = 292 THEN y = 17: length = 20: x = 7
  487.       IF num = 293 THEN y = 50: length = 6
  488.       IF num = 294 THEN y = 69
  489.       COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length)
  490.       b$ = bb$(num): LOCATE x, y: PRINT b$: GOTO 99
  491.    END IF
  492.    IF ij = 2 THEN
  493.       IF num = 298 THEN BEEP: GOTO 99
  494.       COLOR 7, 0: LOCATE x, y: PRINT SPACE$(length)
  495.       LOCATE x, y: PRINT bb$(num)
  496.       num = num + 1: y = y + 24
  497.       COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length)
  498.       b$ = bb$(num): LOCATE x, y: PRINT b$: GOTO 99
  499.    END IF
  500.    IF num = page * 24 THEN 91
  501.    COLOR tc, 0: LOCATE x, y: PRINT SPACE$(length)
  502.    LOCATE x, y: PRINT b$
  503.    y = y + 18: num = num + 1
  504.    IF y = 80 THEN
  505.    xx = fnmb(num) - 1: xx$ = STR$(xx) + "."
  506.    COLOR 7, 0: LOCATE x, 9: PRINT xx$
  507.    y = 26: x = x + 1: xx = fnmb(num): xx$ = STR$(xx) + "."
  508.    COLOR 14, 0: LOCATE x, 9: PRINT xx$
  509.    END IF
  510.    COLOR tc, gc: LOCATE x, y: PRINT SPACE$(length): b$ = bb$(num)
  511.    LOCATE x, y: PRINT b$: GOTO 99
  512.    END IF
  513.  
  514. 'the Alt+U function (Conversion Table):-
  515. '----------------------------------------
  516.    IF ASC(a$) = 22 THEN
  517.    COLOR 7, 1: LOCATE 23, 2: PRINT SPACE$(76)
  518.    xx1 = (num - 1) / 3: xx2 = (num - 2) / 3: xx = INT(num / 3)
  519.    IF xx1 = xx OR xx2 = xx THEN
  520.    LOCATE 23, 6: PRINT "-meter"; SPC(8); "-milimeter"; SPC(8); "-foot"; SPC(8); "-inch"; SPC(8); "-yard"
  521.    COLOR 0, 7: LOCATE 23, 3: PRINT " M ": LOCATE 23, 17: PRINT " L "
  522.    LOCATE 23, 35: PRINT " F ": LOCATE 23, 48: PRINT " I ": LOCATE 23, 61: PRINT " Y "
  523.    COLOR 14, 0: factor = 1
  524. 60 c$ = INKEY$: IF c$ = "" THEN LOCATE 3, 68: PRINT TIME$: GOTO 60
  525.    IF ASC(c$) = 77 OR ASC(c$) = 109 THEN factor = 100'meter
  526.    IF ASC(c$) = 73 OR ASC(c$) = 105 THEN factor = 2.54'inch
  527.    IF ASC(c$) = 70 OR ASC(c$) = 102 THEN factor = 30.48'foot
  528.    IF ASC(c$) = 89 OR ASC(c$) = 121 THEN factor = 91.44'yard
  529.    IF ASC(c$) = 76 OR ASC(c$) = 108 THEN factor = 1000'milimeter
  530.    COLOR 0, 0: LOCATE 23, 2: PRINT SPACE$(76): GOTO 99
  531.    END IF
  532.    LOCATE 23, 6: PRINT "-kg"; SPC(10); "-newton"; SPC(10); "-slug"; SPC(10); "-lb"; SPC(10); "-kips"
  533.    COLOR 0, 7: LOCATE 23, 3: PRINT "K ": LOCATE 23, 15: PRINT " N "
  534.    LOCATE 23, 32: PRINT " S ": LOCATE 23, 47: PRINT " L ": LOCATE 23, 60: PRINT " P "
  535.    factor = 1: COLOR 14, 0
  536. 61 c$ = INKEY$: IF c$ = "" THEN LOCATE 3, 68: PRINT TIME$: GOTO 61
  537.    IF ASC(c$) = 75 OR ASC(c$) = 107 THEN factor = .001    'kg
  538.    IF ASC(c$) = 78 OR ASC(c$) = 110 THEN factor = .00981  'N
  539.    IF ASC(c$) = 83 OR ASC(c$) = 115 THEN factor = 1    'slug check
  540.    IF ASC(c$) = 76 OR ASC(c$) = 108 THEN factor = .0004536'lb
  541.    COLOR 0, 0: LOCATE 23, 2: PRINT SPACE$(76): GOTO 99
  542.    END IF
  543.  
  544. BEEP: GOTO 99
  545.  
  546. 103 'priinting the contents of the page
  547. '--------------------------------------
  548.    COLOR tc, gc: x = 12: y = 26
  549.    LOCATE x, y: PRINT SPACE$(length)
  550.    LOCATE x, y: PRINT bb$(num): y = y + 18: COLOR 7, 0
  551.    FOR ix = num + 1 TO num + 24
  552.    LOCATE x, y: PRINT bb$(ix): y = y + 18
  553.    IF y = 80 THEN y = 26: x = x + 1
  554.    NEXT
  555.    RETURN
  556.  
  557. 105 'sub-programm to clean the data sheat
  558. '----------------------------------------
  559. COLOR 0, 0
  560. FOR i = 12 TO 19: LOCATE i, 9: PRINT SPACE$(64): NEXT
  561. RETURN
  562.  
  563. 75 IF num = 288 THEN flag = 0
  564. b = VAL(b$) * factor: bb$(num) = b$: rv = b
  565. COLOR tc, 0: LOCATE x, y: PRINT SPACE$(length): LOCATE x, y
  566. IF tt = 2 THEN PRINT b$ ELSE PRINT b
  567. 102 END SUB
  568.  
  569.